package com.hspedu.Single;

public class Single01 {
    public static void main(String[] args) {

        System.out.println(Cat.n1);//只进行了类加载，并没有调用构造器

        Cat instance = Cat.getInstance();
        System.out.println(instance);//创建了对象，调用构造器
        Cat instance1 = Cat.getInstance();
        System.out.println(instance==instance1);
    }


}
//希望在程序运行过程中，只能创建一个cat对象
//使用单列模式
class Cat{
public static  int n1=999;
private  static Cat cat;
private final String name;
//步骤
    //1 .任然构造器私有化
    //2. 定义一个static 静态属性对象
    //3.提供一个public 的static 方法 可以返回一个cat对象
    private Cat(String name){
        this.name=name;
        System.out.println("构造器被调用");

    }
    public static Cat getInstance(){

        if(cat==null)
            cat=new Cat("小黑");
        Cat cat = Cat.cat;

        return cat;

    }



}
